package org.funtester.performance.books.chapter04.section3;

import com.alibaba.fastjson.JSONObject;
import org.apache.http.impl.client.CloseableHttpClient;
import org.funtester.performance.books.chapter03.section3.ThreadTask;
import org.funtester.performance.books.chapter04.section2.HttpClientTool;

import java.util.ArrayList;

/**
 * 注册接口测试多线程任务类
 */
public class QueryCardThreadTask extends ThreadTask {

    /**
     * 全局 HttpClient 对象
     */
    public static CloseableHttpClient httpClient = HttpClientTool.getHttpClient();

    /**
     * 用户名
     */
    public String username;

    /**
     * 用户密码
     */
    public String password;

    /**
     * 用户登录凭证token
     */
    public String token;

    /**
     * 构造方法
     * @param totalNum
     */
    public QueryCardThreadTask(String username, String password, int totalNum) {
        this.username = username;// 设置用户名
        this.password = password;// 设置用户密码
        this.totalNum = totalNum;// 设置执行的总次数
        this.costTime = new ArrayList<>(totalNum);// 初始化耗时收集集合类容量
    }

    @Override
    public void before() {
        super.before();// 调用父类方法
        JSONObject login = login(username, password);// 登录
        token = login.getString("token");// 获取登录凭证token
    }

    @Override
    public void test() {
        queryCard(this.token);// 查询卡券列表
    }

    /**
     * 登录接口
     * @param username
     * @param password
     * @return
     */
    public static JSONObject login(String username, String password) {
        //此处省略登录接口构建请求和响应处理内容
        return new JSONObject();// 返回响应结果
    }

    /**
     * 获取用户卡券列表
     * @param token 用户 token
     * @return
     */
    public static JSONObject queryCard(String token) {
        //此处省略获取卡券列表接口构建请求和响应处理内容
        return new JSONObject();// 返回响应结果
    }


}